Group Predictions

Row

Win percentage for the week

Season Win Percentage

Games Correct

59

Games Picked

92

Number of predictions

130

Row

This Week’s Predictions
Game Prediction Winner Correct Correct Votes Correct Percent
1 Seattle Seahawks San Francisco 49ers No 60 0.4615
2 Chicago Bears Chicago Bears Yes 113 0.8692
3 Green Bay Packers Green Bay Packers Yes 105 0.8077
4 Philadelphia Eagles Philadelphia Eagles Yes 120 0.9231
5 Houston Texans Houston Texans Yes 123 0.9462
6 Indianapolis Colts Indianapolis Colts Yes 97 0.7462
7 Tampa Bay Buccaneers Tampa Bay Buccaneers Yes 94 0.7231
8 Baltimore Ravens Baltimore Ravens Yes 76 0.5846
9 Denver Broncos Los Angeles Chargers No 60 0.4615
10 Pittsburgh Steelers Pittsburgh Steelers Yes 116 0.8923
11 Atlanta Falcons Atlanta Falcons Yes 125 0.9615
12 Detroit Lions Detroit Lions Yes 95 0.7308
13 Cincinnati Bengals Cincinnati Bengals Yes 82 0.6308
14 Buffalo Bills Buffalo Bills Yes 112 0.8615

Individual Predictions

row

Individual Table

Individual Results
Week 6
Name Weekly # Correct Percent Weeks Picked Season Percent Adj Season Percent Season Trend
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6
Keven Talbert 10 7 9 11 9 14 1.0000 6 0.6522 0.6522
Randy Dick 11 7 8 8 9 14 1.0000 6 0.6196 0.6196
Richard Beeghley 11 7 6 11 7 14 1.0000 6 0.6087 0.6087
Montee Brown 10 6 8 7 8 14 1.0000 6 0.5761 0.5761
Pablo Burgosramos 9 5 8 9 5 14 1.0000 6 0.5435 0.5435
Bruce Williams 13 9 10 8 9 13 0.9286 6 0.6739 0.6739
Marc Agne 14 7 9 13 6 13 0.9286 6 0.6739 0.6739
Robert Gelo 14 8 9 9 8 13 0.9286 6 0.6630 0.6630
William Schouviller 12 7 9 9 11 13 0.9286 6 0.6630 0.6630
Anthony Bloss 13 8 8 11 8 13 0.9286 6 0.6630 0.6630
Kevin Kehoe 13 7 9 10 8 13 0.9286 6 0.6522 0.6522
Michael Moss 13 8 8 8 10 13 0.9286 6 0.6522 0.6522
Bradley Hobson 13 7 8 11 7 13 0.9286 6 0.6413 0.6413
Chester Todd 13 8 8 8 9 13 0.9286 6 0.6413 0.6413
Erik Neumann 12 8 9 9 7 13 0.9286 6 0.6304 0.6304
Jordan Forwood 11 8 6 11 NA 13 0.9286 5 0.6282 0.5235
Jeremy Stieler 11 9 6 11 6 13 0.9286 6 0.6087 0.6087
Daniel Halse 12 6 8 10 7 13 0.9286 6 0.6087 0.6087
Brandon Parks 12 6 9 9 6 13 0.9286 6 0.5978 0.5978
Brayant Rivera 10 8 9 8 6 13 0.9286 6 0.5870 0.5870
Stephen Bush 9 7 4 10 9 13 0.9286 6 0.5652 0.5652
Tanaysa Henderson NA NA NA NA NA 12 0.8571 1 0.8571 0.1428
Robert Cunningham 14 9 10 12 8 12 0.8571 6 0.7065 0.7065
Chris Papageorge 14 8 10 11 8 12 0.8571 6 0.6848 0.6848
Michael Linder 11 9 9 NA NA 12 0.8571 4 0.6613 0.4409
Jeremy Mounce 12 8 8 NA 10 12 0.8571 5 0.6579 0.5482
Aubrey Conn 13 7 10 9 8 12 0.8571 6 0.6413 0.6413
Randolph Tidd 11 7 8 12 NA 12 0.8571 5 0.6410 0.5342
Michael Pacifico 13 8 7 9 9 12 0.8571 6 0.6304 0.6304
Gregory Brown 15 7 6 9 8 12 0.8571 6 0.6196 0.6196
Kevin Green 11 9 NA 8 7 12 0.8571 5 0.6184 0.5153
Patrick Tynan 12 8 7 9 8 12 0.8571 6 0.6087 0.6087
Thomas Cho 10 6 NA 11 7 12 0.8571 5 0.6053 0.5044
Amy Asberry 11 8 6 10 NA 12 0.8571 5 0.6026 0.5022
Heather Ellenberger 13 8 7 8 7 12 0.8571 6 0.5978 0.5978
Nahir Shepard 11 8 10 8 6 12 0.8571 6 0.5978 0.5978
Jonathon Leslein 10 8 7 10 8 12 0.8571 6 0.5978 0.5978
Matthew Olguin 10 8 9 9 7 12 0.8571 6 0.5978 0.5978
Bryson Scott 10 9 7 NA 7 12 0.8571 5 0.5921 0.4934
Desmond Jenkins 10 7 7 NA 7 12 0.8571 5 0.5658 0.4715
Jennifer Arty 10 7 9 7 7 12 0.8571 6 0.5652 0.5652
Nicholas Nguyen 11 8 5 8 7 12 0.8571 6 0.5543 0.5543
Kamar Morgan 12 6 8 5 8 12 0.8571 6 0.5543 0.5543
Michael Moore 11 6 7 7 8 12 0.8571 6 0.5543 0.5543
Walter Archambo 8 8 7 9 6 12 0.8571 6 0.5435 0.5435
Jason Jackson 12 7 5 6 5 12 0.8571 6 0.5109 0.5109
Matthew Blair NA NA NA NA NA 11 0.7857 1 0.7857 0.1309
Heather Kohler 12 NA 7 12 9 11 0.7857 5 0.6711 0.5592
Pamela Augustine 14 9 9 NA 7 11 0.7857 5 0.6579 0.5482
Paul Presti 12 8 9 12 7 11 0.7857 6 0.6413 0.6413
Anthony Brinson 11 7 NA 9 10 11 0.7857 5 0.6316 0.5263
David Dupree 13 8 10 9 7 11 0.7857 6 0.6304 0.6304
Shawn Carden 10 9 10 10 8 11 0.7857 6 0.6304 0.6304
Travis Delagardelle 11 12 10 8 6 11 0.7857 6 0.6304 0.6304
Ryan Cvik 10 8 9 11 9 11 0.7857 6 0.6304 0.6304
Jennifer Bouland 13 8 10 7 8 11 0.7857 6 0.6196 0.6196
Nicholas Cinco 12 8 NA NA 6 11 0.7857 4 0.6167 0.4111
Kevin Buettner 12 8 8 10 7 11 0.7857 6 0.6087 0.6087
Darryle Sellers 11 11 6 8 9 11 0.7857 6 0.6087 0.6087
Jason Schattel 13 7 6 9 10 11 0.7857 6 0.6087 0.6087
Clevante Granville 9 11 NA NA 5 11 0.7857 4 0.6000 0.4000
Antonio Mitchell 11 7 8 9 9 11 0.7857 6 0.5978 0.5978
Michelle Fraterrigo 11 8 9 9 7 11 0.7857 6 0.5978 0.5978
Keisha Vasquez 8 7 9 9 11 11 0.7857 6 0.5978 0.5978
Ramar Williams 10 8 7 11 8 11 0.7857 6 0.5978 0.5978
Jason Miranda 10 7 8 NA 9 11 0.7857 5 0.5921 0.4934
Daniel Major 8 10 11 6 8 11 0.7857 6 0.5870 0.5870
George Brown 14 7 8 7 6 11 0.7857 6 0.5761 0.5761
Michael Branson 9 8 8 9 8 11 0.7857 6 0.5761 0.5761
Darvin Graham 12 7 6 9 8 11 0.7857 6 0.5761 0.5761
Scott Lefton 10 8 8 7 7 11 0.7857 6 0.5543 0.5543
Thomas Mccoy 10 7 6 8 9 11 0.7857 6 0.5543 0.5543
Gabriel Quinones 10 7 6 9 NA 11 0.7857 5 0.5513 0.4594
Cade Martinez 10 7 8 8 6 11 0.7857 6 0.5435 0.5435
Terry Hardison 13 8 6 7 4 11 0.7857 6 0.5326 0.5326
Steven Maisonneuve NA NA NA NA 11 10 0.7143 2 0.7500 0.2500
Brittany Pillar NA NA NA NA NA 10 0.7143 1 0.7143 0.1191
Shaun Dahl 14 7 9 11 10 10 0.7143 6 0.6630 0.6630
James Small 12 NA 9 10 8 10 0.7143 5 0.6447 0.5373
Derrick Elam 13 9 8 11 7 10 0.7143 6 0.6304 0.6304
Paul Seitz 11 9 9 NA 8 10 0.7143 5 0.6184 0.5153
Nicole Dike 13 7 8 10 7 10 0.7143 6 0.5978 0.5978
Diance Durand 9 9 12 7 8 10 0.7143 6 0.5978 0.5978
Christopher Sims 11 9 10 8 7 10 0.7143 6 0.5978 0.5978
Brian Hollmann NA NA NA 8 8 10 0.7143 3 0.5909 0.2954
Rafael Torres 12 9 8 7 8 10 0.7143 6 0.5870 0.5870
Jared Kaanga 11 9 9 8 7 10 0.7143 6 0.5870 0.5870
Marcus Evans 11 8 NA 8 7 10 0.7143 5 0.5789 0.4824
Melissa Printup 8 9 9 6 10 10 0.7143 6 0.5652 0.5652
Cheryl Brown 11 6 9 8 8 10 0.7143 6 0.5652 0.5652
Jeffrey Zornes 9 11 6 8 7 10 0.7143 6 0.5543 0.5543
Joseph Martin 10 7 8 8 8 10 0.7143 6 0.5543 0.5543
Donald Park 9 NA 6 NA NA 10 0.7143 3 0.5435 0.2718
Zechariah Ziebarth 8 8 8 10 5 10 0.7143 6 0.5326 0.5326
Jay Kelly 10 9 7 7 5 10 0.7143 6 0.5217 0.5217
Edward Ford 9 7 6 10 5 10 0.7143 6 0.5109 0.5109
Richard Conkle 7 6 6 8 7 10 0.7143 6 0.4783 0.4783
Karen Coleman 13 6 NA 11 9 9 0.6429 5 0.6316 0.5263
Matthew Schultz 13 10 9 8 9 9 0.6429 6 0.6304 0.6304
George Sweet 13 9 6 10 11 9 0.6429 6 0.6304 0.6304
Kristen White 14 7 9 9 8 9 0.6429 6 0.6087 0.6087
Kenneth Nielsen 13 8 7 NA 8 9 0.6429 5 0.5921 0.4934
Daniel Baller 14 6 9 8 7 9 0.6429 6 0.5761 0.5761
Tara Bridgett 11 8 8 8 NA 9 0.6429 5 0.5641 0.4701
Robert Sokol 10 8 NA NA 6 9 0.6429 4 0.5500 0.3667
Ryan Shipley 11 6 10 8 5 9 0.6429 6 0.5326 0.5326
Thomas Brenstuhl 9 8 NA 6 7 9 0.6429 5 0.5132 0.4277
Steven Webster 7 7 9 6 7 9 0.6429 6 0.4891 0.4891
Gary Lawrence 10 6 5 5 7 9 0.6429 6 0.4565 0.4565
Karen Richardson 10 9 7 9 11 8 0.5714 6 0.5870 0.5870
Akilah Gamble 9 NA 12 9 6 8 0.5714 5 0.5789 0.4824
Trevor Macgavin 12 7 10 8 8 8 0.5714 6 0.5761 0.5761
Vincent Scannelli 11 7 7 11 8 8 0.5714 6 0.5652 0.5652
David Humes 10 9 8 11 5 8 0.5714 6 0.5543 0.5543
Louie Renew 9 8 12 4 10 8 0.5714 6 0.5543 0.5543
Christopher Mulcahy 11 9 7 8 NA 8 0.5714 5 0.5513 0.4594
Bunnaro Sun 12 5 8 11 6 8 0.5714 6 0.5435 0.5435
Robert Martin 7 NA 9 8 8 8 0.5714 5 0.5263 0.4386
Yiming Hu 12 NA 7 7 6 8 0.5714 5 0.5263 0.4386
Ronald Schmidt 10 10 5 9 6 8 0.5714 6 0.5217 0.5217
Jeffrey Rudderforth 11 11 10 9 6 7 0.5000 6 0.5870 0.5870
Rachel Follo 15 8 6 6 9 7 0.5000 6 0.5543 0.5543
Jennifer Wilson 11 9 10 6 NA 7 0.5000 5 0.5513 0.4594
Sheryl Claiborne-Smith 11 7 NA NA NA 7 0.5000 3 0.5435 0.2718
Min Choi 10 NA 7 NA 8 7 0.5000 4 0.5333 0.3555
Robert Lynch 6 9 8 6 9 7 0.5000 6 0.4891 0.4891
Wayne Schofield 7 5 9 5 7 7 0.5000 6 0.4348 0.4348
George Mancini 11 8 6 NA 8 6 0.4286 5 0.5132 0.4277
Jamie Ainsleigh-Wong 9 8 9 9 8 5 0.3571 6 0.5217 0.5217
Ashlyn Dortch 9 NA NA 8 NA 5 0.3571 3 0.4783 0.2392
Clayton Grimes 14 NA NA NA NA NA 0.0000 1 0.8750 0.1458
Wallace Savage 12 NA NA NA NA NA 0.0000 1 0.7500 0.1250
Brian Holder 12 NA NA NA NA NA 0.0000 1 0.7500 0.1250
Sandra Carter 12 NA NA NA NA NA 0.0000 1 0.7500 0.1250
Jeremy Krammes 12 NA NA NA NA NA 0.0000 1 0.7500 0.1250
Terrence Lee 11 NA NA NA NA NA 0.0000 1 0.6875 0.1146
Daniel Gray 11 NA NA NA NA NA 0.0000 1 0.6875 0.1146
Wayne Gokey 13 7 NA 11 NA NA 0.0000 3 0.6458 0.3229
Nathan Brown 13 8 9 11 9 NA 0.0000 5 0.6410 0.5342
David Hadley 13 10 8 NA 8 NA 0.0000 4 0.6290 0.4193
George Hall 12 NA 8 NA NA NA 0.0000 2 0.6250 0.2083
Jeffrey Dusza 11 8 NA NA NA NA 0.0000 2 0.5938 0.1979
Cherylynn Vidal 13 9 8 8 NA NA 0.0000 4 0.5938 0.3959
Megan Fitzgerald 8 11 9 10 NA NA 0.0000 4 0.5938 0.3959
Adam Konkle 10 9 NA NA NA NA 0.0000 2 0.5938 0.1979
Ryan Baum 14 4 9 10 9 NA 0.0000 5 0.5897 0.4914
Jonathan Knight 13 10 9 6 7 NA 0.0000 5 0.5769 0.4808
Philip Driskill 12 7 8 10 8 NA 0.0000 5 0.5769 0.4808
Steward Hogans 10 7 10 NA NA NA 0.0000 3 0.5625 0.2812
Jose Torres Mendoza 12 8 8 8 NA NA 0.0000 4 0.5625 0.3750
Earl Dixon 10 9 6 9 9 NA 0.0000 5 0.5513 0.4594
David Plate 10 8 8 8 9 NA 0.0000 5 0.5513 0.4594
Lawrence Thuotte 9 5 12 NA 8 NA 0.0000 4 0.5484 0.3656
Anthony Rockemore 13 8 6 8 7 NA 0.0000 5 0.5385 0.4488
Noah Gosswiller 8 7 NA 10 8 NA 0.0000 4 0.5323 0.3549
Monte Henderson 9 8 NA NA NA NA 0.0000 2 0.5312 0.1771
David Kim 9 8 NA NA NA NA 0.0000 2 0.5312 0.1771
Brian Patterson 11 6 9 9 6 NA 0.0000 5 0.5256 0.4380
Jonathan Smith 11 NA 4 10 7 NA 0.0000 4 0.5161 0.3441
Zachary Brosemer 8 NA NA NA NA NA 0.0000 1 0.5000 0.0833
Antonio Chapa 8 NA NA NA NA NA 0.0000 1 0.5000 0.0833
Vincent Kandian 9 8 8 7 NA NA 0.0000 4 0.5000 0.3333
Joshua Tracey 12 5 8 6 7 NA 0.0000 5 0.4872 0.4060
Jack Wheeler 9 6 5 10 8 NA 0.0000 5 0.4872 0.4060
Kyle May 10 8 5 6 8 NA 0.0000 5 0.4744 0.3953
Gabrieal Feiling 10 NA 5 NA NA NA 0.0000 2 0.4688 0.1563
Ashley Johnson 9 NA 6 NA 6 NA 0.0000 3 0.4565 0.2283
Andrew Gray 5 8 9 7 NA NA 0.0000 4 0.4531 0.3021
Jasprin Smith 6 NA NA NA NA NA 0.0000 1 0.3750 0.0625
Robert Epps NA 6 NA NA NA NA 0.0000 1 0.3750 0.0625

Season Leaderboard

Season Leaderboard (Season Percent)
Week 6
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Clayton Grimes 0 1 0.8750 0.1458
2 Tanaysa Henderson 0 1 0.8571 0.1428
3 Matthew Blair 0 1 0.7857 0.1309
4 Brian Holder 0 1 0.7500 0.1250
4 Jeremy Krammes 0 1 0.7500 0.1250
4 Sandra Carter 0 1 0.7500 0.1250
4 Steven Maisonneuve 1 2 0.7500 0.2500
4 Wallace Savage 0 1 0.7500 0.1250
9 Brittany Pillar 0 1 0.7143 0.1191
10 Robert Cunningham 0 6 0.7065 0.7065
11 Daniel Gray 0 1 0.6875 0.1146
11 Terrence Lee 0 1 0.6875 0.1146
13 Chris Papageorge 0 6 0.6848 0.6848
14 Bruce Williams 0 6 0.6739 0.6739
14 Marc Agne 1 6 0.6739 0.6739
16 Heather Kohler 0 5 0.6711 0.5592
17 Anthony Bloss 0 6 0.6630 0.6630
17 Robert Gelo 0 6 0.6630 0.6630
17 Shaun Dahl 0 6 0.6630 0.6630
17 William Schouviller 1 6 0.6630 0.6630
21 Michael Linder 0 4 0.6613 0.4409
22 Jeremy Mounce 0 5 0.6579 0.5482
22 Pamela Augustine 0 5 0.6579 0.5482
24 Keven Talbert 1 6 0.6522 0.6522
24 Kevin Kehoe 0 6 0.6522 0.6522
24 Michael Moss 0 6 0.6522 0.6522
27 Wayne Gokey 0 3 0.6458 0.3229
28 James Small 0 5 0.6447 0.5373
29 Aubrey Conn 0 6 0.6413 0.6413
29 Bradley Hobson 0 6 0.6413 0.6413
29 Chester Todd 0 6 0.6413 0.6413
29 Paul Presti 0 6 0.6413 0.6413
33 Nathan Brown 0 5 0.6410 0.5342
33 Randolph Tidd 0 5 0.6410 0.5342
35 Anthony Brinson 0 5 0.6316 0.5263
35 Karen Coleman 0 5 0.6316 0.5263
37 David Dupree 0 6 0.6304 0.6304
37 Derrick Elam 0 6 0.6304 0.6304
37 Erik Neumann 0 6 0.6304 0.6304
37 George Sweet 1 6 0.6304 0.6304
37 Matthew Schultz 0 6 0.6304 0.6304
37 Michael Pacifico 0 6 0.6304 0.6304
37 Ryan Cvik 0 6 0.6304 0.6304
37 Shawn Carden 0 6 0.6304 0.6304
37 Travis Delagardelle 1 6 0.6304 0.6304
46 David Hadley 0 4 0.6290 0.4193
47 Jordan Forwood 0 5 0.6282 0.5235
48 George Hall 0 2 0.6250 0.2083
49 Gregory Brown 1 6 0.6196 0.6196
49 Jennifer Bouland 0 6 0.6196 0.6196
49 Randy Dick 1 6 0.6196 0.6196
52 Kevin Green 0 5 0.6184 0.5153
52 Paul Seitz 0 5 0.6184 0.5153
54 Nicholas Cinco 0 4 0.6167 0.4111
55 Daniel Halse 0 6 0.6087 0.6087
55 Darryle Sellers 0 6 0.6087 0.6087
55 Jason Schattel 0 6 0.6087 0.6087
55 Jeremy Stieler 0 6 0.6087 0.6087
55 Kevin Buettner 0 6 0.6087 0.6087
55 Kristen White 0 6 0.6087 0.6087
55 Patrick Tynan 0 6 0.6087 0.6087
55 Richard Beeghley 1 6 0.6087 0.6087
63 Thomas Cho 0 5 0.6053 0.5044
64 Amy Asberry 0 5 0.6026 0.5022
65 Clevante Granville 0 4 0.6000 0.4000
66 Antonio Mitchell 0 6 0.5978 0.5978
66 Brandon Parks 0 6 0.5978 0.5978
66 Christopher Sims 0 6 0.5978 0.5978
66 Diance Durand 1 6 0.5978 0.5978
66 Heather Ellenberger 0 6 0.5978 0.5978
66 Jonathon Leslein 0 6 0.5978 0.5978
66 Keisha Vasquez 1 6 0.5978 0.5978
66 Matthew Olguin 0 6 0.5978 0.5978
66 Michelle Fraterrigo 0 6 0.5978 0.5978
66 Nahir Shepard 0 6 0.5978 0.5978
66 Nicole Dike 0 6 0.5978 0.5978
66 Ramar Williams 0 6 0.5978 0.5978
78 Adam Konkle 0 2 0.5938 0.1979
78 Cherylynn Vidal 0 4 0.5938 0.3959
78 Jeffrey Dusza 0 2 0.5938 0.1979
78 Megan Fitzgerald 0 4 0.5938 0.3959
82 Bryson Scott 0 5 0.5921 0.4934
82 Jason Miranda 0 5 0.5921 0.4934
82 Kenneth Nielsen 0 5 0.5921 0.4934
85 Brian Hollmann 0 3 0.5909 0.2954
86 Ryan Baum 0 5 0.5897 0.4914
87 Brayant Rivera 0 6 0.5870 0.5870
87 Daniel Major 0 6 0.5870 0.5870
87 Jared Kaanga 0 6 0.5870 0.5870
87 Jeffrey Rudderforth 0 6 0.5870 0.5870
87 Karen Richardson 1 6 0.5870 0.5870
87 Rafael Torres 0 6 0.5870 0.5870
93 Akilah Gamble 1 5 0.5789 0.4824
93 Marcus Evans 0 5 0.5789 0.4824
95 Jonathan Knight 0 5 0.5769 0.4808
95 Philip Driskill 0 5 0.5769 0.4808
97 Daniel Baller 0 6 0.5761 0.5761
97 Darvin Graham 0 6 0.5761 0.5761
97 George Brown 0 6 0.5761 0.5761
97 Michael Branson 0 6 0.5761 0.5761
97 Montee Brown 1 6 0.5761 0.5761
97 Trevor Macgavin 0 6 0.5761 0.5761
103 Desmond Jenkins 0 5 0.5658 0.4715
104 Cheryl Brown 0 6 0.5652 0.5652
104 Jennifer Arty 0 6 0.5652 0.5652
104 Melissa Printup 0 6 0.5652 0.5652
104 Stephen Bush 0 6 0.5652 0.5652
104 Vincent Scannelli 0 6 0.5652 0.5652
109 Tara Bridgett 0 5 0.5641 0.4701
110 Jose Torres Mendoza 0 4 0.5625 0.3750
110 Steward Hogans 0 3 0.5625 0.2812
112 David Humes 0 6 0.5543 0.5543
112 Jeffrey Zornes 0 6 0.5543 0.5543
112 Joseph Martin 0 6 0.5543 0.5543
112 Kamar Morgan 0 6 0.5543 0.5543
112 Louie Renew 1 6 0.5543 0.5543
112 Michael Moore 0 6 0.5543 0.5543
112 Nicholas Nguyen 0 6 0.5543 0.5543
112 Rachel Follo 1 6 0.5543 0.5543
112 Scott Lefton 0 6 0.5543 0.5543
112 Thomas Mccoy 0 6 0.5543 0.5543
122 Christopher Mulcahy 0 5 0.5513 0.4594
122 David Plate 0 5 0.5513 0.4594
122 Earl Dixon 0 5 0.5513 0.4594
122 Gabriel Quinones 0 5 0.5513 0.4594
122 Jennifer Wilson 0 5 0.5513 0.4594
127 Robert Sokol 0 4 0.5500 0.3667
128 Lawrence Thuotte 1 4 0.5484 0.3656
129 Bunnaro Sun 0 6 0.5435 0.5435
129 Cade Martinez 0 6 0.5435 0.5435
129 Donald Park 0 3 0.5435 0.2718
129 Pablo Burgosramos 1 6 0.5435 0.5435
129 Sheryl Claiborne-Smith 0 3 0.5435 0.2718
129 Walter Archambo 0 6 0.5435 0.5435
135 Anthony Rockemore 0 5 0.5385 0.4488
136 Min Choi 0 4 0.5333 0.3555
137 Ryan Shipley 0 6 0.5326 0.5326
137 Terry Hardison 0 6 0.5326 0.5326
137 Zechariah Ziebarth 0 6 0.5326 0.5326
140 Noah Gosswiller 0 4 0.5323 0.3549
141 David Kim 0 2 0.5312 0.1771
141 Monte Henderson 0 2 0.5312 0.1771
143 Robert Martin 0 5 0.5263 0.4386
143 Yiming Hu 0 5 0.5263 0.4386
145 Brian Patterson 0 5 0.5256 0.4380
146 Jamie Ainsleigh-Wong 0 6 0.5217 0.5217
146 Jay Kelly 0 6 0.5217 0.5217
146 Ronald Schmidt 0 6 0.5217 0.5217
149 Jonathan Smith 0 4 0.5161 0.3441
150 George Mancini 0 5 0.5132 0.4277
150 Thomas Brenstuhl 0 5 0.5132 0.4277
152 Edward Ford 0 6 0.5109 0.5109
152 Jason Jackson 0 6 0.5109 0.5109
154 Antonio Chapa 0 1 0.5000 0.0833
154 Vincent Kandian 0 4 0.5000 0.3333
154 Zachary Brosemer 0 1 0.5000 0.0833
157 Robert Lynch 0 6 0.4891 0.4891
157 Steven Webster 0 6 0.4891 0.4891
159 Jack Wheeler 0 5 0.4872 0.4060
159 Joshua Tracey 0 5 0.4872 0.4060
161 Ashlyn Dortch 0 3 0.4783 0.2392
161 Richard Conkle 0 6 0.4783 0.4783
163 Kyle May 0 5 0.4744 0.3953
164 Gabrieal Feiling 0 2 0.4688 0.1563
165 Ashley Johnson 0 3 0.4565 0.2283
165 Gary Lawrence 0 6 0.4565 0.4565
167 Andrew Gray 0 4 0.4531 0.3021
168 Wayne Schofield 0 6 0.4348 0.4348
169 Jasprin Smith 0 1 0.3750 0.0625
169 Robert Epps 0 1 0.3750 0.0625

Adjusted Season Leaderboard

Season Leaderboard (Adjusted Season Percent)
Week 6
Season Rank Name Donuts Won Weeks Picked Season Percent Adj Season Percent Season Trend
1 Robert Cunningham 0 6 0.7065 0.7065
2 Chris Papageorge 0 6 0.6848 0.6848
3 Bruce Williams 0 6 0.6739 0.6739
3 Marc Agne 1 6 0.6739 0.6739
5 Anthony Bloss 0 6 0.6630 0.6630
5 Robert Gelo 0 6 0.6630 0.6630
5 Shaun Dahl 0 6 0.6630 0.6630
5 William Schouviller 1 6 0.6630 0.6630
9 Keven Talbert 1 6 0.6522 0.6522
9 Kevin Kehoe 0 6 0.6522 0.6522
9 Michael Moss 0 6 0.6522 0.6522
12 Aubrey Conn 0 6 0.6413 0.6413
12 Bradley Hobson 0 6 0.6413 0.6413
12 Chester Todd 0 6 0.6413 0.6413
12 Paul Presti 0 6 0.6413 0.6413
16 David Dupree 0 6 0.6304 0.6304
16 Derrick Elam 0 6 0.6304 0.6304
16 Erik Neumann 0 6 0.6304 0.6304
16 George Sweet 1 6 0.6304 0.6304
16 Matthew Schultz 0 6 0.6304 0.6304
16 Michael Pacifico 0 6 0.6304 0.6304
16 Ryan Cvik 0 6 0.6304 0.6304
16 Shawn Carden 0 6 0.6304 0.6304
16 Travis Delagardelle 1 6 0.6304 0.6304
25 Gregory Brown 1 6 0.6196 0.6196
25 Jennifer Bouland 0 6 0.6196 0.6196
25 Randy Dick 1 6 0.6196 0.6196
28 Daniel Halse 0 6 0.6087 0.6087
28 Darryle Sellers 0 6 0.6087 0.6087
28 Jason Schattel 0 6 0.6087 0.6087
28 Jeremy Stieler 0 6 0.6087 0.6087
28 Kevin Buettner 0 6 0.6087 0.6087
28 Kristen White 0 6 0.6087 0.6087
28 Patrick Tynan 0 6 0.6087 0.6087
28 Richard Beeghley 1 6 0.6087 0.6087
36 Antonio Mitchell 0 6 0.5978 0.5978
36 Brandon Parks 0 6 0.5978 0.5978
36 Christopher Sims 0 6 0.5978 0.5978
36 Diance Durand 1 6 0.5978 0.5978
36 Heather Ellenberger 0 6 0.5978 0.5978
36 Jonathon Leslein 0 6 0.5978 0.5978
36 Keisha Vasquez 1 6 0.5978 0.5978
36 Matthew Olguin 0 6 0.5978 0.5978
36 Michelle Fraterrigo 0 6 0.5978 0.5978
36 Nahir Shepard 0 6 0.5978 0.5978
36 Nicole Dike 0 6 0.5978 0.5978
36 Ramar Williams 0 6 0.5978 0.5978
48 Brayant Rivera 0 6 0.5870 0.5870
48 Daniel Major 0 6 0.5870 0.5870
48 Jared Kaanga 0 6 0.5870 0.5870
48 Jeffrey Rudderforth 0 6 0.5870 0.5870
48 Karen Richardson 1 6 0.5870 0.5870
48 Rafael Torres 0 6 0.5870 0.5870
54 Daniel Baller 0 6 0.5761 0.5761
54 Darvin Graham 0 6 0.5761 0.5761
54 George Brown 0 6 0.5761 0.5761
54 Michael Branson 0 6 0.5761 0.5761
54 Montee Brown 1 6 0.5761 0.5761
54 Trevor Macgavin 0 6 0.5761 0.5761
60 Cheryl Brown 0 6 0.5652 0.5652
60 Jennifer Arty 0 6 0.5652 0.5652
60 Melissa Printup 0 6 0.5652 0.5652
60 Stephen Bush 0 6 0.5652 0.5652
60 Vincent Scannelli 0 6 0.5652 0.5652
65 Heather Kohler 0 5 0.6711 0.5592
66 David Humes 0 6 0.5543 0.5543
66 Jeffrey Zornes 0 6 0.5543 0.5543
66 Joseph Martin 0 6 0.5543 0.5543
66 Kamar Morgan 0 6 0.5543 0.5543
66 Louie Renew 1 6 0.5543 0.5543
66 Michael Moore 0 6 0.5543 0.5543
66 Nicholas Nguyen 0 6 0.5543 0.5543
66 Rachel Follo 1 6 0.5543 0.5543
66 Scott Lefton 0 6 0.5543 0.5543
66 Thomas Mccoy 0 6 0.5543 0.5543
76 Jeremy Mounce 0 5 0.6579 0.5482
76 Pamela Augustine 0 5 0.6579 0.5482
78 Bunnaro Sun 0 6 0.5435 0.5435
78 Cade Martinez 0 6 0.5435 0.5435
78 Pablo Burgosramos 1 6 0.5435 0.5435
78 Walter Archambo 0 6 0.5435 0.5435
82 James Small 0 5 0.6447 0.5373
83 Nathan Brown 0 5 0.6410 0.5342
83 Randolph Tidd 0 5 0.6410 0.5342
85 Ryan Shipley 0 6 0.5326 0.5326
85 Terry Hardison 0 6 0.5326 0.5326
85 Zechariah Ziebarth 0 6 0.5326 0.5326
88 Anthony Brinson 0 5 0.6316 0.5263
88 Karen Coleman 0 5 0.6316 0.5263
90 Jordan Forwood 0 5 0.6282 0.5235
91 Jamie Ainsleigh-Wong 0 6 0.5217 0.5217
91 Jay Kelly 0 6 0.5217 0.5217
91 Ronald Schmidt 0 6 0.5217 0.5217
94 Kevin Green 0 5 0.6184 0.5153
94 Paul Seitz 0 5 0.6184 0.5153
96 Edward Ford 0 6 0.5109 0.5109
96 Jason Jackson 0 6 0.5109 0.5109
98 Thomas Cho 0 5 0.6053 0.5044
99 Amy Asberry 0 5 0.6026 0.5022
100 Bryson Scott 0 5 0.5921 0.4934
100 Jason Miranda 0 5 0.5921 0.4934
100 Kenneth Nielsen 0 5 0.5921 0.4934
103 Ryan Baum 0 5 0.5897 0.4914
104 Robert Lynch 0 6 0.4891 0.4891
104 Steven Webster 0 6 0.4891 0.4891
106 Akilah Gamble 1 5 0.5789 0.4824
106 Marcus Evans 0 5 0.5789 0.4824
108 Jonathan Knight 0 5 0.5769 0.4808
108 Philip Driskill 0 5 0.5769 0.4808
110 Richard Conkle 0 6 0.4783 0.4783
111 Desmond Jenkins 0 5 0.5658 0.4715
112 Tara Bridgett 0 5 0.5641 0.4701
113 Christopher Mulcahy 0 5 0.5513 0.4594
113 David Plate 0 5 0.5513 0.4594
113 Earl Dixon 0 5 0.5513 0.4594
113 Gabriel Quinones 0 5 0.5513 0.4594
113 Jennifer Wilson 0 5 0.5513 0.4594
118 Gary Lawrence 0 6 0.4565 0.4565
119 Anthony Rockemore 0 5 0.5385 0.4488
120 Michael Linder 0 4 0.6613 0.4409
121 Robert Martin 0 5 0.5263 0.4386
121 Yiming Hu 0 5 0.5263 0.4386
123 Brian Patterson 0 5 0.5256 0.4380
124 Wayne Schofield 0 6 0.4348 0.4348
125 George Mancini 0 5 0.5132 0.4277
125 Thomas Brenstuhl 0 5 0.5132 0.4277
127 David Hadley 0 4 0.6290 0.4193
128 Nicholas Cinco 0 4 0.6167 0.4111
129 Jack Wheeler 0 5 0.4872 0.4060
129 Joshua Tracey 0 5 0.4872 0.4060
131 Clevante Granville 0 4 0.6000 0.4000
132 Cherylynn Vidal 0 4 0.5938 0.3959
132 Megan Fitzgerald 0 4 0.5938 0.3959
134 Kyle May 0 5 0.4744 0.3953
135 Jose Torres Mendoza 0 4 0.5625 0.3750
136 Robert Sokol 0 4 0.5500 0.3667
137 Lawrence Thuotte 1 4 0.5484 0.3656
138 Min Choi 0 4 0.5333 0.3555
139 Noah Gosswiller 0 4 0.5323 0.3549
140 Jonathan Smith 0 4 0.5161 0.3441
141 Vincent Kandian 0 4 0.5000 0.3333
142 Wayne Gokey 0 3 0.6458 0.3229
143 Andrew Gray 0 4 0.4531 0.3021
144 Brian Hollmann 0 3 0.5909 0.2954
145 Steward Hogans 0 3 0.5625 0.2812
146 Donald Park 0 3 0.5435 0.2718
146 Sheryl Claiborne-Smith 0 3 0.5435 0.2718
148 Steven Maisonneuve 1 2 0.7500 0.2500
149 Ashlyn Dortch 0 3 0.4783 0.2392
150 Ashley Johnson 0 3 0.4565 0.2283
151 George Hall 0 2 0.6250 0.2083
152 Adam Konkle 0 2 0.5938 0.1979
152 Jeffrey Dusza 0 2 0.5938 0.1979
154 David Kim 0 2 0.5312 0.1771
154 Monte Henderson 0 2 0.5312 0.1771
156 Gabrieal Feiling 0 2 0.4688 0.1563
157 Clayton Grimes 0 1 0.8750 0.1458
158 Tanaysa Henderson 0 1 0.8571 0.1428
159 Matthew Blair 0 1 0.7857 0.1309
160 Brian Holder 0 1 0.7500 0.1250
160 Jeremy Krammes 0 1 0.7500 0.1250
160 Sandra Carter 0 1 0.7500 0.1250
160 Wallace Savage 0 1 0.7500 0.1250
164 Brittany Pillar 0 1 0.7143 0.1191
165 Daniel Gray 0 1 0.6875 0.1146
165 Terrence Lee 0 1 0.6875 0.1146
167 Antonio Chapa 0 1 0.5000 0.0833
167 Zachary Brosemer 0 1 0.5000 0.0833
169 Jasprin Smith 0 1 0.3750 0.0625
169 Robert Epps 0 1 0.3750 0.0625

Data

---
title: "2024 NFL Moneyline Picks"
output: 
  flexdashboard::flex_dashboard:
    theme:
      version: 4
      bootswatch: spacelab
    orientation: rows
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
    navbar:
      - { title: "Created by: Daniel Baller", icon: "fa-github", href: "https://github.com/danielpballer"  }
---


```{r setup, include=FALSE}
#    source_code: embed
library(flexdashboard)
library(tidyverse)
library(data.table)
library(formattable)
library(ggpubr)
library(ggrepel)
library(gt)
library(glue)
library(ggthemes)
library(hrbrthemes)
library(sparkline)
library(plotly)
library(htmlwidgets)
library(mdthemes)
library(ggtext)
library(ggnewscale)
library(DT)
source("./Functions/functions2.R")

thematic::thematic_rmd(font = "auto")

```

```{r Reading in our picks files, include=FALSE}
current_week = 6 #Set what week it is
week_1 = read_csv("./CSV_Data_Files/2024 NFL Week 1.csv") %>% 
  mutate(Name = str_to_title(Name))
week_2 = read_csv("./CSV_Data_Files/2024 NFL Week 2.csv")%>% 
  mutate(Name = str_to_title(Name))
week_3 = read_csv("./CSV_Data_Files/2024 NFL Week 3.csv")%>% 
  mutate(Name = str_to_title(Name))
week_4 = read_csv("./CSV_Data_Files/2024 NFL Week 4.csv")%>%
 mutate(Name = str_to_title(Name))
 week_5 = read_csv("./CSV_Data_Files/2024 NFL Week 5.csv")%>% 
  mutate(Name = str_to_title(Name))
 week_6 = read_csv("./CSV_Data_Files/2024 NFL Week 6.csv")%>% 
  mutate(Name = str_to_title(Name))
# week_7 = read_csv("./CSV_Data_Files/2024 NFL Week 7.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_8 = read_csv("./CSV_Data_Files/2024 NFL Week 8.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_9 = read_csv("./CSV_Data_Files/2024 NFL Week 9.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_10 = read_csv("./CSV_Data_Files/2024 NFL Week 10.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_11 = read_csv("./CSV_Data_Files/2024 NFL Week 11.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_12 = read_csv("./CSV_Data_Files/2024 NFL Week 12.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_13 = read_csv("./CSV_Data_Files/2024 NFL Week 13.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_14 = read_csv("./CSV_Data_Files/2024 NFL Week 14.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_15 = read_csv("./CSV_Data_Files/2024 NFL Week 15.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_16 = read_csv("./CSV_Data_Files/2024 NFL Week 16.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_17 = read_csv("./CSV_Data_Files/2024 NFL Week 17.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_18 = read_csv("./CSV_Data_Files/2024 NFL Week 18.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_19 = read_csv("./CSV_Data_Files/2024 NFL Wild Card.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_20 = read_csv("./CSV_Data_Files/2024 NFL Divisional Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_21 = read_csv("./CSV_Data_Files/2024 NFL Conference Round.csv")%>% 
#  mutate(Name = str_to_title(Name))
# week_22 = read_csv("./CSV_Data_Files/2024 NFL Super Bowl.csv")%>% 
#  mutate(Name = str_to_title(Name))

#reading in scores
Scores = read_csv(glue::glue("./CSV_Data_Files/NFL_Scores_{current_week}.csv")) 

#reading in CBS Prediction Records
cbs = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_{current_week}.csv")) %>% 
  mutate(Percent = round(Percent,4))
cbs_season = read_csv(glue::glue("./CSV_Data_Files/CBS_Experts_Season_{current_week}.csv"))

#reading in ESPN Prediction Records
espn = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))
espn_season = read_csv(glue::glue("./CSV_Data_Files/ESPN_Experts_Season_{current_week}.csv"))%>% 
  mutate(Percent = round(Percent,4))

#Odds not working for the 2024 season.  Need to fix scrape code for next year.
#Reading in the moneyline odds for each team and cleaning the team names
# odds_wk1 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_1.csv"))
# odds_wk2 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_2.csv"))
# odds_wk3 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_3.csv"))
# odds_wk4 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_4.csv"))
# odds_wk5 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_5.csv"))
# odds_wk6 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_6.csv"))
# odds_wk7 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_7.csv"))
# odds_wk8 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_8.csv"))
# odds_wk9 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_9.csv"))
# odds_wk10 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_10.csv"))
# odds_wk11 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_11.csv"))
# odds_wk12 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_12.csv"))
# odds_wk13 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_13.csv"))
# odds_wk14 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_14.csv"))
# odds_wk15 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_15.csv"))
# odds_wk16 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_16.csv"))
# odds_wk17 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_17.csv"))
# odds_wk18 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_18.csv"))
# odds_wk19 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_19.csv"))
# odds_wk20 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_20.csv"))
# odds_wk21 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_21.csv"))
# odds_wk22 = read_csv(glue::glue("./CSV_Data_Files/Moneyline_Odds_22.csv"))

####################UPDATE THESE###############################
inst.picks = list(week_1, week_2, week_3, week_4, week_5, week_6)#, week_7, week_8, week_9, week_10, week_11, week_12, week_13, week_14, week_15, week_16, week_17 , week_18, week_19 , week_20, week_21, week_22) #add in the additional weeks
# odds = rbind(odds_wk1, odds_wk2, odds_wk3, odds_wk4, odds_wk5, odds_wk6, odds_wk7, odds_wk8,
#              odds_wk9, odds_wk10, odds_wk11, odds_wk12) #add in the additional weeks
####################END OF UPDATE##############################

weeks = as.list(seq(1:current_week)) #creating a list of each week number
```

```{r read in scores clean data, include=FALSE}
#Cleaning Odds Data
# cl_odds = odds_cleaning(odds)

#Cleaning scores data
Scores = cleaning2(Scores)

#creating a list of winners for each week
winners = map(weeks, weekly_winners)

#creating a vector of this weeks winners
this_week = pull(winners[[length(winners)]])  

#Getting the number of games for each week
weekly_number_of_games = map_dbl(weeks, week_number_games)
```

```{r Group Predictions, include=FALSE}
#Creating the list of everyones predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Adding who won to the predictions
with_winners = map2(pred_table, winners, adding_winners)

#Creating results for each week.
results = map2(with_winners,weekly_number_of_games, results_fn)
```


```{r Displaying Group Results, echo=FALSE}
#Displaying the group results

inst_group_table = results[[length(results)]] %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    #subtitle = md(glue("Week {length(results)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="No"
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Correct),
      rows = Correct =="Yes"
    )) %>% 
  tab_options(
    data_row.padding = px(3),
    container.height = "100%"
   )
```

```{r Weekly and season Group Results, include=FALSE}
# Printing the weekly and season win percentage     

#how many games correct, incorrect, and not picked each week
weekly_group_correct = map(results, weekly_group_correct_fn)  

#how many games were picked each week
weekly_games_picked = map2(weekly_group_correct, weekly_number_of_games, weekly_games_picked_fn)

#Calculating the number of correct picks for each week
weekly_group_correct_picks = map(weekly_group_correct, weekly_group_correct_picks_fn)

# Code to manually hard code in week where we get 0 games correct
# ##### Remove this line before next season 
# weekly_group_correct_picks[[21]]=0

#Calculating weekly win percentage
weekly_win_percentage = map2(weekly_group_correct_picks, weekly_games_picked, weekly_win_percentage_fn)

#Calculating season win percentage
season_win_percentage = round(sum(unlist(weekly_group_correct_picks))/sum(unlist(weekly_games_picked)),4)

#Calculating number of games picked this season
season_games = sum(unlist(weekly_games_picked))

#calculating season wins
season_wins = sum(unlist(weekly_group_correct_picks))

#calculating the number of people who picked this week
Total = dim(inst.picks[[length(weeks)]])[1]
```

```{r plotting group results, include=FALSE}
#Previous Weeks
group_season_for_plotting = unlist(weekly_win_percentage) %>% as.data.frame() %>% 
  rename(`Win Percentage` = ".") %>% 
  add_column(Week = unlist(weeks))
```

```{r Plotting the group results, echo=FALSE}
inst_group_season_plot = group_season_for_plotting %>% 
ggplot(aes(x = as.factor(Week), y = `Win Percentage`))+
  geom_point()+
  geom_path(aes(x = Week))+
  ylim(c(0, 1)) +
  xlab("NFL Week") + 
  ylab("Correct Percentage")+
  ggtitle("Weekly Group Correct Percentage")+
  theme_classic()+
  theme(plot.title = element_text(hjust = 0.5, size = 18))
```

```{r beating cbs week, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_weekly_percent = map(weeks, cbs_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat = map2(cbs_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_total = map(cbs_weekly_percent, experts_tot)
```

```{r beating cbs season, include=FALSE}
#Creating a list of correct percentages for each week.
cbs_season_percent = map(weeks, cbs_season_percent)

#Creating a list of how many cbs experts we beat each week.
cbs_experts_beat_season = map2(cbs_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
cbs_experts_season_total = map(cbs_season_percent, experts_tot)
```

```{r beating ESPN week, include=FALSE}
#Creating a list of correct percentages for each week.
espn_weekly_percent = map(weeks, espn_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat = map2(espn_weekly_percent, weekly_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_total = map(espn_weekly_percent, experts_tot)
```

```{r beating ESPN season, include=FALSE}
#Creating a list of correct percentages for each week.
espn_season_percent = map(weeks, espn_season_percent)

#Creating a list of how many cbs experts we beat each week.
espn_experts_beat_season = map2(espn_season_percent, season_win_percentage, experts_beat)

#Creating a list of how many cbs experts picked each week.  
espn_experts_season_total = map(espn_season_percent, experts_tot)
```

```{r individual results, include=FALSE}
#Creating a list of individual results for each week.
weekly_indiv = pmap(list(inst.picks, winners, weeks), indiv_weekly_pred)

#Combining each week into one dataframe and calculating percentage Correct for this week.  
full_season = weekly_indiv %>% reduce(full_join, by = "Name") %>% 
  mutate(Percent = round(pull(.[,ncol(.)]/weekly_number_of_games[[length(weekly_number_of_games)]]),4)) 

#Creating a dataframe with only the weekly picks
a = full_season %>% select(starts_with("Week"))

#Creating a vector of how many weeks each person picked over the season
tot_week = NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = ifelse(is.na(a[i,j])==T,0,1)
    tot_week[i] = sum(help)
  }
}

#Creating a vector of how many games each person picked over the season
tot_picks= NULL
help = NULL
for (i in 1:dim(a)[1]){
  for(j in 1:length(a)){
    help[j] = unlist(weekly_games_picked)[j]*ifelse(is.na(a[i,j])==T,0,1)
    tot_picks[i] = sum(help)
  }
}

#Creatign a vector of how many games each person picked correct over the season
tot_correct = NULL
help = NULL
for (i in 1:dim(a)[1]){
  tot_correct[i] = sum(a[i,], na.rm = T)
}

#adding how many weeks each person picked, season correct percentage, and adjusted season percentag to the data frame and sorting the data
indiv_disp = full_season %>% add_column(`Weeks Picked` = tot_week) %>%
  add_column(tot_correct)%>%
  add_column(tot_picks)%>%
  mutate(`Season Percent` = round(tot_correct/tot_picks,4))%>%
  mutate(`Adj Season Percent` = round(`Season Percent`*(tot_week/length(a)),4)) %>%
  select(-tot_correct, -tot_picks) %>%
  arrange(desc(Percent), desc(`Season Percent`)) %>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent))
```


```{r individual percentages, include=FALSE}
#Calculating individual percentages for each week.
weekly_indiv_percent = map2(weekly_indiv, as.list(weekly_number_of_games), indiv_percent) %>% reduce(full_join, by = "Name")

weekly_indiv_percent_plot = weekly_indiv_percent %>% 
  pivot_longer(cols = starts_with("Week"), names_to = "Week", values_to = "Percent")%>%
  mutate(Percent = ifelse(is.na(Percent)==T, 0, Percent)) %>% 
  mutate(Week = as.factor(Week))

levels = NULL
for(i in 1:length(weeks)){
  levels[i] = glue("Week {i}")  
}

weekly_indiv_percent_plot = weekly_indiv_percent_plot %>%
  mutate(Week = factor(Week, levels))
```

```{r sparklines, include=FALSE}
#adding sparklines
plot_group = function(name, df){
  plot_object = 
    ggplot(data = df,
           aes(x = as.factor(Week), y=Percent, group = 1))+
    geom_path(size = 7)+
    scale_y_continuous(limits = c(0,1))+
    theme_void()+
    theme(legend.position = "none")
  return(plot_object)
}

sparklines = 
  weekly_indiv_percent_plot %>% 
  group_by(Name) %>% 
  nest() %>% 
  mutate(plot = map2(Name, data, plot_group)) %>% 
  select(-data)
  
indiv_disp_2 = indiv_disp %>% 
  inner_join(sparklines, by = "Name") %>% 
  mutate(`Season Trend` = NA)
```

```{r Printing Individual Table2, echo=FALSE}
# Printing the individual Table
indiv_table = indiv_disp_2 %>% gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Individual Results"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(Percent),
      rows = Percent>.5
    )) %>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(indiv_disp_2$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(c(plot))

indiv_winners = indiv_disp_2 %>% filter(Percent == max(Percent)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season = indiv_disp_2 %>% filter(`Season Percent` == max(`Season Percent`)) %>% select(Name) %>% pull() %>% paste(collapse = ", ")
indiv_season_adj = indiv_disp_2 %>% filter(`Adj Season Percent` == max(`Adj Season Percent`)) %>% select(Name) %>% pull()%>% paste(collapse = ", ")
```

```{r Printing Season Leaderboard, echo=FALSE}
# Printing the Season Leaderboard
  
season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`) 
  
season_leaderboard = season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```

```{r Printing Adj Season Leaderboard, echo=FALSE}
# Printing the Adj Season Leaderboard
  
adj_season_leaderboard_disp = indiv_disp_2 %>% select(Name, starts_with("Week ")) %>% 
  pivot_longer(starts_with("Week"),names_to = "Week", values_to = "Correct") %>% 
  group_by(Week) %>% 
  mutate(Correct = case_when(is.na(Correct)==T~0, 
                             TRUE~Correct)) %>% 
  mutate(Donut = case_when(Correct==max(Correct)~1,
                           TRUE~0))  %>% 
  ungroup() %>% 
  group_by(Name) %>% 
  summarise(`Donuts Won` = sum(Donut)) %>% 
  #mutate(`Donuts Won` = strrep("award,", Donuts)) %>% 
  right_join(.,indiv_disp_2) %>% 
  select(-starts_with("Week "), -Percent) %>% 
  mutate(`Season Rank` = min_rank(desc(`Adj Season Percent`)),.before = Name) %>% 
  arrange(`Season Rank`)

adj_season_leaderboard = adj_season_leaderboard_disp %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("Season Leaderboard (Adjusted Season Percent)"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
  # fmt_icon(
  #   columns = `Donuts Won`,
  #   fill_color = "gold",
  # ) %>%
  tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Season Percent`),
      rows = `Season Percent`>.5
    ))%>% 
     tab_style(
    style = cell_text(color = "red", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`<.5
    )) %>% 
   tab_style(
    style = cell_text(color = "green", weight = "bold"),
    locations = cells_body(
      columns = c(`Adj Season Percent`),
      rows = `Adj Season Percent`>.5
    )) %>% 
  tab_options(
    container.width = pct(100),
    data_row.padding = px(1),
    container.height = "100%"
   ) %>%
    tab_spanner(
    label = "Weekly # Correct",
    columns = starts_with(c("Week "))
  ) %>% 
  text_transform(
    locations = cells_body(c(`Season Trend`)),
    fn = function(x){
      map(adj_season_leaderboard_disp$plot, ggplot_image, height = px(30), aspect_ratio = 4)
                 }) %>%
  cols_hide(columns = c(plot))
```


```{r instructor formattable, echo=FALSE}
improvement_formatter <- 
  formatter("span", 
            style = x ~ formattable::style(
              font.weight = "bold", 
              color = ifelse(x > .5, "green", ifelse(x < .5, "red", "black"))),
             x ~ icontext(ifelse(x == max(x), "star", ""), x))

indiv_disp_3 = indiv_disp_2 %>% select(-plot)
indiv_disp_3$`Season Trend` = apply(indiv_disp_3[,2:(1+length(weeks))], 1, FUN = function(x) as.character(htmltools::as.tags(sparkline(as.numeric(x), type = "line", chartRangeMin = 0, chartRangeMax = 1, fillColor = "white"))))

indiv_table_2 = as.htmlwidget(formattable(indiv_disp_3, 
                                align = c("l", rep("c", NROW(indiv_disp_3)-1)),
              list(`Season Percent` = color_bar("#FA614B"),
              `Season Percent`= improvement_formatter,
              `Adj Season Percent`= improvement_formatter)))
              
indiv_table_2$dependencies = c(indiv_table_2$dependencies, htmlwidgets:::widget_dependencies("sparkline", "sparkline"))
```

```{r Plotting individual results over the season2, eval=FALSE, include=FALSE, out.width="100%"}
#Creating the individual plot.  
inst_indiv_plots = weekly_indiv_percent_plot %>% 
  ggplot(aes(x = factor(Week), y = Percent, color = Name))+
  geom_point()+
  geom_path(aes(x = as.factor(Week), y = Percent, color = Name, 
                group = Name))+
  ylim(c(0, 1)) +
  labs(x = "NFL Week", 
       y = "Correct Percentage", 
       title = "Weekly Individual Correct Percentage")+
  facet_wrap(~Name)+
  theme_classic()+
  theme(legend.position = "none",
        plot.title = element_text(hjust = 0.5, size = 18),
        axis.text.x=element_text(angle =45, vjust = 1, hjust = 1))
```

```{r data for data page}
inst.data = map2(inst.picks, weeks, disp_data) %>% bind_rows()
```


```{r fivethirtyeight}
inst_538 = map(results, five38) %>% unlist() %>% sum()
```

```{r pregame, eval=FALSE, include=FALSE}
#Predictions for the week

#Creating the list of group predictions each week.
games = map(inst.picks, games_fn)

#Creating the prediction table.  
pred_table = map(games, pred_table_fn)

#Printing table of instructor predictions
pred_table[[length(pred_table)]] %>% mutate(Game = row_number()) %>% 
  rename(`Votes For` = votes_for, `Votes Against` = votes_against) %>% 
  gt() %>% 
  cols_align(
    align = "center") %>% 
   tab_header(
    title = md("This Week's Predictions"),
    subtitle = md(glue("Week {length(weeks)}"))
    ) %>% 
   tab_options(
    data_row.padding = px(3)
   )
```

Group Predictions
==========================================================================

Sidebar {.sidebar} 
-------------------------------------
#### CBS Sports

<font size="4">

This week we beat or tied `r cbs_experts_beat[[length(weeks)]]` of `r cbs_experts_total[[length(weeks)]]` CBS Sports' Experts.

For the season we are currently beating or tied with `r cbs_experts_beat_season[[length(weeks)]]` of `r cbs_experts_season_total[[length(weeks)]]` CBS Sports' Experts.
 
 </font>


#### ESPN

<font size="4">

We also beat or tied `r espn_experts_beat[[length(weeks)]]` of `r espn_experts_total[[length(weeks)]]` ESPN Experts.
 
For the season we are currently beating or tied with `r espn_experts_beat_season[[length(weeks)]]` of `r espn_experts_season_total[[length(weeks)]]` ESPN Experts.

</font>

Row
--------------------------------------

### Win percentage for the week

```{r}
inst_rate <- weekly_win_percentage[[length(weekly_win_percentage)]]*100
gauge(inst_rate, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Season Win Percentage

```{r}
inst_season <- season_win_percentage*100
gauge(inst_season, min = 0, max = 100, symbol = '%', gaugeSectors(
  success = c(55, 100), warning = c(40, 54), danger = c(0, 39)
))
```

### Games Correct
```{r}
valueBox(value = season_wins,icon = "fa-trophy",caption = "Correct Games this Season")
```

### Games Picked
```{r}
valueBox(value = season_games,icon = "fa-clipboard-list",caption = "Games Picked this Season")
```

### Number of predictions
```{r}
valueBox(value = Total,icon = "fa-users",caption = "Predictions this week")
```

Row
--------------------------------------

### 

```{r}
inst_group_table
```

### 

```{r}
ggplotly(inst_group_season_plot) %>% 
  layout(title = list(y = .93, xref = "plot"),
         margin = list(t = 40))
```

Individual Predictions
==========================================================================


Sidebar {.sidebar} 
-------------------------------------

#### Best Picks of the Week.

<font size="4">

 `r indiv_winners`
 
 </font>
 
#### Best Season Correct Percentage
<font size="4">

`r indiv_season`
 
 </font>

#### Best Adjusted Season Correct Percentage
<font size="4">

`r indiv_season_adj`

 * Adjusted season percentage accounts for the number of weeks picked.
 
 </font>

row {.tabset}
--------------------------------------

### Individual Table
```{r}
indiv_table
```

<!--
### Individual Table2

```{r, out.height="100%"}
indiv_table_2
```

-->

<!--

### Individual Plots
```{r, out.width="100%"}
#ggplotly(inst_indiv_plots)
```

-->

### Season Leaderboard
```{r, out.width="100%"}
season_leaderboard
```

### Adjusted Season Leaderboard
```{r, out.width="100%"}
adj_season_leaderboard
```

Data
==========================================================================

```{r}
datatable(
  inst.data, extensions = 'Buttons', options = list(
    dom = 'Blfrtip',
    buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
    lengthMenue = list( c(10, 25, 50, 100, -1), c(10, 25, 50, 100, "All") )
  )
)
```